<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Moodle Docs: Installing PHP and MySQL</title>
	<link rel="stylesheet" href="docstyles.css" type="TEXT/CSS" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
<h1>Installing Apache, MySQL and PHP</h1>
<blockquote>
  <p>Moodle is written in a scripting language called PHP, and stores most of its 
  data in a database. The database we recommend is MySQL. Before installing Moodle 
  you must have a working PHP installation and a working database to turn your 
  computer into a functional web server platform. These packages can be tricky 
  to set up for average computer users, so this page has been written to try to 
  make this process as simple as possible for different platforms:</p>
  <ul>
    <li><a href="#host" class="questionlink">Hosting Service</a></li>
    <li><a href="#mac" class="questionlink">Mac OS X</a></li>
    <li><a href="#redhat" class="questionlink">Redhat Linux</a></li>
    <li><a href="#windows" class="questionlink">Windows</a></li>
  </ul>
  <p class="questionlink">&nbsp;</p>
  <h3 class="sectionheading"><a name="host" id="host"></a>Hosting Service</h3>
  <blockquote>
    <p>Unfortunately hosting services vary quite a lot in the way they work. Some 
    will even install Moodle for you.</p>
    <p>Most will offer a web-based control panel to control your site, create databases 
    and set up cron. Some may also offer terminal access via ssh, so that you 
    can use the command shell to do things.</p>
    <p>You should work your way through the <a href="./?file=install.html">Installation 
    guide</a> and take each step at a time. Ask your hosting provider if you get 
    stuck. </p>
    <p>&nbsp;</p>
  </blockquote>
  <h3 class="sectionheading"><a name="mac" id="mac"></a>Mac OS X</h3>
  <blockquote>
    <p>The easiest way to do this is use the Apache server that Apple provides, 
    and add PHP and MySQL using Marc Liyanage's packages. Both of the pages below 
    come with good instructions that we won't duplicate here:</p>
    <blockquote>
      <p><strong>PHP</strong>: Download from here: <a href="http://www.entropy.ch/software/macosx/php/" target="_top">http://www.entropy.ch/software/macosx/php/</a></p>
      <p><strong>MySQL</strong>: Download here: <a href="http://www.entropy.ch/software/macosx/mysql/" target="_top">http://www.entropy.ch/software/macosx/mysql/</a></p>
    </blockquote>
    <p>Once these are installed the standard <a href="./?file=install.html">Installation 
    guide</a> should be fairly straightforward.</p>
    <p>A more detailed walkthrough is here: <a href="http://moodle.org/wiki/index.php/InstallingMoodle">http://moodle.org/wiki/index.php/InstallingMoodle</a></p>
    <p>&nbsp;</p>
  </blockquote>
  <h3 class="sectionheading"><a name="redhat"></a>Redhat Linux</h3>
  <blockquote>
    <p>You should install all available RPM packages for Apache, PHP and MySQL. 
    One package that people frequently forget is the php-mysql package which is 
    necessary for PHP to talk to MySQL.</p>
    <p>Once these are installed the standard <a href="./?file=install.html">Installation 
    guide</a> should be fairly straightforward.</p>
    <p>A more detailed walkthrough is here: <a href="http://moodle.org/wiki/index.php/InstallingMoodle">http://moodle.org/wiki/index.php/InstallingMoodle</a></p>
  </blockquote>
  <p>&nbsp;</p>
  <h3 class="sectionheading"><a name="windows" id="windows"></a>Windows</h3>
  <blockquote>
    <p>The easiest way to do this is use <a href="http://www.easyphp.org/" target="_blank">EasyPHP</a>, 
    a package that bundles all the software you need into a single Windows application. 
    Here are the steps from start to finish:</p>
    <ol>
      <li> Firstly, if you have ever installed MySQL before (even as part of another 
      package), uninstall it all, delete all the MySQL files and make sure you 
      delete <strong>c:\my.cnf</strong> and <strong>c:\windows\my.ini</strong>.You 
      might want to do a search and delete ANY file called <strong>my.cnf</strong> 
      or <strong>my.ini</strong>.</li>
      <li> If you've ever installed PHP before delete any files called <strong>php4ts.dll</strong> 
      from around your Windows directory, as well as any files called <strong>php.ini</strong>.</li>
      <li> Download EasyPHP from here: <a href="http://www.easyphp.org/telechargements/dn.php?F=easyphp1-7">http://www.easyphp.org/telechargements/dn.php?F=easyphp1-7</a> 
      (approx 10 Mb)</li>
      <li> Run the downloaded file: <strong>easyphp1-7_setup.exe</strong>. The installation 
      process is in French but is otherwise much like installing any other Windows 
      program - I advise accepting the defaults and letting it all install. Note 
      that &quot;Suivant&quot; means Next and &quot;Oui&quot; means Yes.</li>
      <li>At the end of the install leave the checkbox selected to &quot;Lancer 
      EasyPHP&quot; (Start EasyPHP) and hit the 'Terminer&quot; button. You might 
      be taken to a information web page which you can safely ignore. </li>
      <li>If all went well - congratulations! Apache, PHP and MySQL are all installed 
      and running! You should see a black E in your toolbar tray. You can right 
      click on it to get a menu which will let you control the running programs.</li>
      <li>Some things may be in French and you may prefer English. You can download this file <a href="http://www.easyphp.org/telechargements/dn.php?F=indexUS_1.7">http://www.easyphp.org/telechargements/dn.php?F=indexUS_1.7</a> which contains English versions of www and home folder in the EasyPHP1-7 folder. These can be copied over the default files.</li>
      <li> The next thing you need to do is to set up a database for Moodle to use. 
      Right-click the black E in the toolbar tray and choose Administration, then click DB Management (beside PHPMyAdmin).</li>
      <li>If asked for a username, use &quot;<strong>root</strong>&quot; with a <strong>blank password</strong>. You 
      should see a phpMyAdmin web interface that allows you to create a new databases 
      and user accounts. </li>
      <li>Create a new database by typing &quot;moodle&quot; into the field and 
      hitting the &quot;Create&quot; button. That was easy!</li>
      <li>You can also create a new user to access your database if you want. This 
      can be a bit tricky for a first-time user, so you might just want to use 
      the existing user &quot;root&quot; with no password in your Moodle config 
      for now, and fix this later.</li>
      <li> You're ready to install Moodle! Download the latest release of Moodle 
      from <a href="http://moodle.org/download" target="_blank">http://moodle.org/download</a>, 
      then unzip the archive.</li>
      <li>Copy your moodle files into <strong>C:\Program Files\EasyPHP\www. </strong>You 
      can either copy the entire moodle directory (ie C:\Program Files\EasyPHP\www\moodle) 
      or copy all the <em>contents</em> of the moodle directory. If you choose 
      this second option then you will be able to access your Moodle home page 
      using http://localhost/ instead of http://localhost/moodle/.</li>
      <li> Make a new empty folder somewhere else for Moodle to store uploaded files 
      in, eg: <strong>C:\moodledata</strong></li>
      <li> Go into your Moodle folder. Make a copy of config-dist.php, and call 
      it config.php</li>
      <li> Edit config.php using a text editor (Notepad will do, just be careful 
      that it doesn't add unwanted spaces at the end). </li>
      <li>Put in all your new database info:<br />
      $CFG-&gt;dbtype = 'mysql';<br />
      $CFG-&gt;dbhost = 'localhost';<br />
      $CFG-&gt;dbname = 'moodle';<br />
      $CFG-&gt;dbuser = 'root'; <br />
      $CFG-&gt;dbpass = '';<br />
      $CFG-&gt;dbpersist = true;<br />
      $CFG-&gt;prefix = 'mdl_';</li>
      <li>And put in all your file paths:<br />
      $CFG-&gt;wwwroot = 'http://localhost/moodle'; // Use an external address 
      if you know it. <br />
      $CFG-&gt;dirroot = 'C:\Program Files\EasyPHP\www\moodle'; <br />
      $CFG-&gt;dataroot = 'C:\moodledata';</li>
      <li>Save config.php - you can ignore the other settings if there are any.</li>
      <li>You're nearly there now! The rest of the setup is all web-based. Visit 
      <a href="http://localhost/moodle/admin/" target="_blank">http://localhost/moodle/admin/</a> 
      with your browser to continue the setup via your browser.</li>
      <li>To use zip files with Moodle (for example the backups use zip) you might 
      need to enable &quot;zlib&quot;. You can do this by going to your EasyPHP 
      directory (<strong>C:\Program Files\EasyPHP</strong>), and running the program 
      phpini.exe in there. Put a mark in the checkbox next to &quot;zlib.dll&quot;. 
      Close that window, then go to the black E in your toolbar and right-click 
      it to get a menu - select &quot;Restart&quot; from this menu.</li>
      <li>Lastly, you need to set up some sort of cron. See the <a href="./?file=install.html">Installation 
      guide</a> for more details on this.</li>
    </ol>
    <p>If you don't or can't use EasyPHP, here are some a few tips to make sure 
    your PHP is set up correctly and avoid common problems:</p>
    <ul>
      <li>Make sure you enable the GD module so Moodle can process images - you 
      may have to edit php.ini and remove the comment (;) from this line: 'extension=php_gd2.dll'. 
    </li>
      <li>Make sure you enable the Zlib module so that you can create and unpack 
      zip files from within Moodle.</li>
      <li>Make sure sessions is turned on - you may have to edit php.ini and fix 
      the directory for <strong>session.save_path</strong> - instead of the default 
      "/tmp" use a Windows directory like "c:/temp".</li>
    </ul>
    <p>&nbsp;</p>
  </blockquote>
</blockquote>
<p align="center"><font size="1"><a href="." target="_top">Moodle Documentation</a></font></p>
<p align="center"><font size="1">Version: $Id$</font></p>

</body>
</html>